home *** CD-ROM | disk | FTP | other *** search
- # Source Generated with Decompyle++
- # File: in.pyc (Python 2.6)
-
- import glib
- import gtk
-
- class Spinner:
-
- def __init__(self, image):
- self.image = image
- frames = []
- theme = gtk.icon_theme_get_default()
- icon_info = theme.lookup_icon('process-working', 22, 0)
- if icon_info != None:
- size = icon_info.get_base_size()
- icon = icon_info.get_filename()
-
- try:
- pixbuf = gtk.gdk.pixbuf_new_from_file(icon)
- grid_width = pixbuf.get_width()
- grid_height = pixbuf.get_height()
- y = 0
- while y < grid_height:
- x = 0
- while x < grid_width:
- frame = pixbuf.subpixbuf(x, y, size, size)
- frames.append(frame)
- x += size
- y += size
- except gobject.GError:
- pass
- except:
- None<EXCEPTION MATCH>gobject.GError
-
-
- None<EXCEPTION MATCH>gobject.GError
- self.frames = frames
- self.n_frames = len(frames)
- self._rest()
-
-
- def _set_frame(self, n):
- self._current_frame = n
- if self.n_frames == 0:
- self.image.clear()
- return None
- self.image.set_from_pixbuf(self.frames[n])
-
-
- def _rest(self):
- self._set_frame(0)
-
-
- def _next_frame(self):
- n = self._current_frame + 1
- if n >= self.n_frames:
- n = 0
-
- self._set_frame(n)
- return True
-
-
- def start(self, timeout = 125):
- self._task = glib.timeout_add(timeout, self._next_frame)
-
-
- def stop(self):
- glib.source_remove(self._task)
- self._rest()
-
-
-